home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine CD 1995
/
Archive Magazine CD 1995.iso
/
text
/
hints
/
volume_04
/
issue_08
< prev
next >
Wrap
Text File
|
1995-02-16
|
35KB
|
940 lines
Hints and Tips
4.8
• ARM code errata − The following is for all those who have an unshak
able faith in the integrity of Acorn’s code:
4.8
The code given to return from SWI “OS_ BreakPt” on page 736 of the PRMs
is incorrect. The following works.
4.8
.backtobreak%
4.8
SWI “OS_EnterOS”
4.8
ADR R14,breaksave
4.8
LDMIA R14,{r0-r14 }^
4.8
LDR R14,[R14,#15*4]
4.8
ADD R14,R14,#4
4.8
MOVS PC,R14
4.8
The code given on page 231 of the old BASIC User Guide (under CALL) is
incorrect. For example, to use MATCH, the line tokenisation routine, the
following code will work. This has been corrected in the new BASIC User
Guide.
4.8
.tokenise
4.8
STMFD R13!,{r14 }
4.8
ADD R0,R14,#18*4
4.8
ADR R1,source
4.8
ADR R2,dest
4.8
MOV R3,#1
4.8
MOV R4,#0
4.8
ADR R14,cominghome
4.8
MOV PC,R0
4.8
.cominghome
4.8
LDMFD R13!,{pc }
4.8
.source
4.8
EQUS STRING$(90,CHR$(0)) ALIGN
4.8
.dest
4.8
EQUS STRING$(90,CHR$(0)) ALIGN
4.8
J Heher, South Africa
4.8
• BASIC printing to a DeskJet Plus − The April issue of Archive
contained a Help!!! plea about printing from Archimedes BASIC to a
DeskJet 500. I have a DeskJet Plus and have successfully printed from
BASIC. For reference, my printer is normally set with the function
switches 6 and 8 in bank A and 2 in bank B up, all others are down.
4.8
To print, I use the command VDU 2,1,27,1,38, 1,107,1,49,1,71 (see Line
Termination in Appendix 8.19 of the Owner’s Manual). Here is an example
of how it can be used:
4.8
10 REM >PrintTest
4.8
20 VDU 2,1,27,1,38,1,107,1,49,1,71
4.8
30 PRINT “TEST OF NORMAL PRINTING”
4.8
40 VDU 1,27,1,38,1,100,1,49,1,68
4.8
50 PRINT “This is underlined”
4.8
60 VDU 1,27,1,38,100,1,64
4.8
70 VDU 1,27,1,40,1,115,1,51,1,66
4.8
80 PRINT “This is BOLD printing”
4.8
90 VDU 1,27,1,40,1,115,1,48,1,66
4.8
100 VDU 1,27,1,40,1,115,1,50,1,48, 1,72
4.8
110 PRINT “This is 20 PITCH”
4.8
120 VDU 1,27,1,69 :REM reset printer
4.8
130 VDU 3
4.8
140 END
4.8
A Kitchenside, Weybridge
4.8
• Big memory tips − As a footnote to my own article in last month’s
Archive on making best use of machines with more than 1M memory, I’d
like to add one more tip. I was reminded by a review of Protext, which
noted that the current version does not multi-task, that my eleventh tip
might have been, “boycott non multi-tasking packages”. Since, with 1M,
you couldn’t really multi-task two significant applications, this was
not a problem. Now, it’s a real pain in the neck not to be able to have
several applications with simultaneously active windows, much of the
power and ease-of-use of RISC-OS is being un-used and it’s annoying
knowing that 3M of your upgrade is being wasted!
4.8
So, unless there’s a really good reason such as a time-critical sound
sampler or video screen grabber, I suggest that we boycott such
packages. Then, software producers would have to bring them up to date
and not try to palm us off with “Arthur programs with !Run and !Boot
files”. In an ideal world, software sellers would refuse to stock them
but at least they could be marked as such, perhaps indicating their
antiquity by listing them in a suitable script? Stuart Bell, Brighton.
4.8
• C book − I was recommended a good C book which I used on a C short
course I attended: The Waite Group’s “New C Primer Plus”, First Edition
1990, editor Howard W Sams & Co, ISBN 0−672−22687−1. It covers ANSI C,
UNIX, Microsoft C and Turbo C. S. Stel, Netherlands.
4.8
• ChangeFSI update − A new version of ChangeFSI v0.79 is available from
Acorn Direct for £19.95. This will handle more image formats than would
v0.69: Degas PI1, PI2 & PI3, !Translator Clear, MacPaint 579x720x1 bit/
pixel, ZSoft .PCX, Windows3 .BMP, Pineapple 16 bit/pixel, UNIX rle, PC
TGA. Unfortunately it will not run from the desktop under !ChangeFSI
(Shareware Disc 21) as is. This is because version 0.79 is 94 Kbytes
long, compared with 74K for v0.69. The solution is to edit the !Run file
of !ChangeFSI and increase the WimpSlot from 128K to 160K. All is then
well. A Quayle, Chester
4.8
• C txt library − This idea was inspired by the article ‘Introduction to
C’ – Part 5, in Archive 3.6. This gave a complete RISC-OS application
using the libraries supplied with Release 3 of Acorn C. In particular,
it used the ‘txt’ library to provide a window to display text generated
by the sample program. This requires a minimum of effort by the
programmer since the library looks after most of the problems.
4.8
Although it works as described, it has two major disadvantages. The
first is the slow speed during text generation. The second is the
operation of the window controls. In particular, the cursor control keys
cannot be used to move the text through the window, the close icon has
no effect and the vertical scroll bars can only be dragged. Here are
some techniques which overcome these problems.
4.8
Improved text generation speed turns out to be a very simple modifi
cation since the cause of the slow operation is the redrawing of the
window for every item added to the text buffer using, for example, the
txt_insertstring function. Two extra lines are required; the first turns
off the display updates when text generation starts and the second turns
it back on when the operation is complete. The lines shown below should
be inserted immediately after the visdelay_begin() statement and
immediately before the visdelay_ end() statement in the original program
function sysvars_to_text().
4.8
/* turn off display update */
4.8
txt_setcharoptions(t, txt_DISPLAY, FALSE);
4.8
4.8
/* turn on display update */
4.8
txt_setcharoptions(t, txt_DISPLAY, TRUE);
4.8
Improving text window control requires rather more code but again the
principle is fairly straightforward. Firstly an event handler has to be
registered for the text window following its successful creation by the
txt_new() function using the following statement:
4.8
/* register the text window event handler */
4.8
txt_eventhandler(t, user_txevent, NULL);
4.8
This registers the function user_txevent which will be called to process
text window events.
4.8
The function itself has to process all the events which the user
requires. A sample function is given below which is commented to show
which events are being processed. The keyboard key macro definitions
given in ‘akbd.h’ are used for consistency but, in addition, the ‘Home’
key must also be defined using a macro as this is omitted from ‘akbd.h’.
The actual key values required are defined in the PRM, page 1198 and the
macro definitions are given in file ‘akbd.h’. Note, however, that the
definitions given for both akbd_ PageUpK and akbd_PageDownK are wrong so
I have not used these but used their correct definition in the following
code. The value txt_ EXTRACODE is added to the key value to represent
the equivalent window operation. A full list of these is given on page
325 of the ANSI C Release 3.
4.8
4.8
#include “akbd.h”
4.8
4.8
#define HOME (30)
4.8
4.8
/***********************************
4.8
user_txevent text window event handler
4.8
t text object
4.8
h event handle
4.8
***********************************/
4.8
void user_txevent(txt t, void *h)
4.8
{lines ; /* number of lines in window */
4.8
4.8
h = h;
4.8
while (txt_queue(t) > 0)
4.8
{number of lines visible in window */
4.8
lines = txt_visiblelinecount(t);
4.8
4.8
/* process the next user event code */
4.8
switch (txt_get(t))
4.8
{+ akbd_Fn+127:
4.8
/* close window icon */
4.8
txt_hide(t);
4.8
break;
4.8
4.8
case akbd_UpK:
4.8
case txt_EXTRACODE + akbd_UpK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_UpK:
4.8
/* scroll up one line */
4.8
txt_movevertical(t, –1, TRUE);
4.8
break;
4.8
4.8
case akbd_DownK:
4.8
case txt_EXTRACODE + akbd_DownK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_DownK:
4.8
/* scroll down one line */
4.8
txt_movevertical(t, 1, TRUE);
4.8
break;
4.8
4.8
case akbd_Sh + akbd_UpK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_UpK:
4.8
/* scroll up one page */
4.8
txt_movevertical(t, -lines, FALSE);
4.8
break;
4.8
case akbd_Sh + akbd_DownK:
4.8
case txt_EXTRACODE + akbd_Sh + akbd_DownK:
4.8
/* scroll down one page */
4.8
txt_movevertical(t, lines, FALSE);
4.8
break;
4.8
4.8
case akbd_Ctl + akbd_UpK:
4.8
case HOME:
4.8
/* move to start of text */
4.8
txt_setdot(t, 0);
4.8
break;
4.8
4.8
case akbd_Ctl + akbd_DownK:
4.8
case akbd_Sh + akbd_CopyK:
4.8
/* move to end of text */
4.8
txt_setdot(t, txt_size(t));
4.8
break;
4.8
4.8
default:
4.8
break;
4.8
}
4.8
}
4.8
return;
4.8
}
4.8
David Scott, Stockport
4.8
• Connection problems − If you are having connection problems with RS423
connectors, or video or printer − or a dongle, it may be because the
plugs are not ‘going home’ properly into the sockets on the back of the
computer. I have noticed this particularly on A540’s, but it could also
occur on other Archimedes computers. This may be because the fixing
pillars either side of the socket are too high. The solution it to take
a pair of pliers (or a box spanner if you have a suitable sized one) and
remove each of the pillars in turn, take off the washer and screw the
pillar back in. That extra millimetre can make all the difference.
4.8
• CPC monitor − When my multisync died on me suddenly and I was forced
to make do with what I had − a well worn Amstrad CPC green screen
monitor. In practice it was fairly easy to connect the six-pin CPC
connector to the nine-pin connector on the A3000:
4.8
Archimedes CPC
4.8
1, 2 & 3 − 6
4.8
6, 7, 8 & 9 − 5
4.8
5 − 4
4.8
Naturally, it is impossible to use the multisync modes but it certainly
is almost as sharp a picture on the tube as on my multisync and much
cheaper. If your main interest is games I wouldn’t recommend it but for
most business uses it is perfectly all right. I guess you could get a
second hand green CPC monitor for next to nothing in the UK as many
owners have exchanged them for the new CPC monitors. Ask your local
dealer! A spare monitor could come in handy any day! Tord Eriksson,
Sweden.
4.8
• !Edit − For what seems like an eternity I have been wrestling with the
problem of importing text from a wordprocessor (in my case View). What I
wanted to do was free the text from newline characters in order that, on
loading it into Ovation, it could be formatted to new column width, in
whatever point size, without the newline control code producing extra
linefeeds. At the same time, it should retain the carriage returns
marking the paragraphs and multi-line spacing. This way I did not lose
all the style. What follows is how I do it . It might seem obvious but
it could help someone who is as thick as me. If I have missed the point
would some kind person tell me before I go mad.
4.8
After loading your text into !Edit, go through the text ensuring that
there are double returns at the end of each paragraph and on multiple
line text like program listings or poetry.
4.8
My technique is firstly to change double returns into something which is
unlikely to appear elsewhere in the text, thus:
4.8
Press <F4> to select Find
4.8
In the Find dialogue box enter \n\n <return>
4.8
In the Replace dialogue box enter ZCZC<return>
4.8
Click on the Magic Character box
4.8
Click on the Go box
4.8
Click on End of File Replace
4.8
Click on Stop
4.8
Press <ctrl-up> to move the cursor to the top
4.8
Now, to replace the single returns:
4.8
Press <F4> to select Find
4.8
In the Find dialogue box enter \n <return>
4.8
In the Replace dialogue box press <space>
4.8
Click on Go
4.8
Click on End of File Replace
4.8
Click on Stop
4.8
Press <ctrl-up>
4.8
Then, to restore the double returns to single ones:
4.8
Press <F4> to select Find
4.8
In the Find dialogue box enter ZCZC<return>
4.8
In the Replace dialogue box enter \n <return>
4.8
Click on Go
4.8
Click on End of File replace
4.8
Click on Stop
4.8
You should have your text with the paragraph and multi-line spacing
intact. (Simplified from a hint sent in by R Follett, Winnersh, Berks.)
4.8
• Improving sound quality − Further to the comments by Jeremy Mears
(Archive 4.7 p 21) there is no need, on the A3000, to actually solder to
the motherboard. You can make contact to the appropriate resistors using
micro test clips (Tandy − £1.50 for four). This would, I suppose, still
invalidate the warranty but is less obvious than blobs of solder on the
p.c.b.! To get access to the resistors, you have to remove the disc
drive by unscrewing it from underneath. R86 is under the keyboard side
of the drive whereas R99 is under the middle of the drive. Pin 1 of the
expansion port is the furthest right (looking from the keyboard side of
the computer). Gerald Williams, Aldershot.
4.8
• Multiple height and width text printing − I know that the emphasis
these days is on programs which multi-task and use mode 12 on the
desktop but not every program is suitable for this and some of these
programs require larger than usual height characters.
4.8
I am (slowly) developing a word game for the Archimedes, from one I
wrote last year on my Model B. The “B” version uses mode 2, with double
height routines written in machine code for speed. The original version
of this code was quite “illegal” and would not work on a Master but it
was fast! With it, I could also have text printed 3 or even 4 times
normal height just as quickly. However, I am new to the Archimedes and
ARM code is currently beyond me, so after trying various routines in
BASIC I came across VDU23,17,7. This gives characters at any height and
any width and is very fast! I can even get half width which gives the
impression of mode 1 characters in mode 2. Also, it works in most Screen
modes (except 3, 6 & 7).
4.8
I’ve put together a short routine which demonstrates how easy and fast
this routine is. To use it, all you have to do is append the PROCedure
to your program and call it with the colour you wish it to appear in,
the X & Y positions, the height and width of the characters and the
Text$ − the routine will do the rest! One point to bear in mind,
however, is that text is printed using the graphic cursor, i.e. under
VDU 5 and MOVE or PLOT, rather than the text cursor and VDU 31, X%,Y%.
4.8
Even though this demonstration program is about 20 lines long, the only
bits you need are in PROCtext(colour, X_co_ord, Y_co_ord, Height, Width,
Text$). The function FNvdu simply returns the text width of the screen
mode window in use and this is used to check if lines are too long in
the first line of PROCtext. The second line in PROCtext is personal as I
like being able to centralise text without effort! To do so, just set X%
to -1. The %110 sets bits 1 and 2 so that both characters and spacing
are altered at the same time. %100 sets spacing, while %010 will alter
just character sizes. It is also possible to use 0.5 as Height or Width
but that works better in “chunky” modes, like 2 rather than 12. When the
width is set to an odd number, the “auto-centralising” is sometimes a
little off so you may prefer to set up the X co-ord manually.
4.8
REM >$.Height/Wid.!RunImage
4.8
:
4.8
DIM block% 12, output% 12
4.8
MODE12:COLOUR3
4.8
:
4.8
PROCtext(1,-1,1,2,3,“Multi Height & Width!”)
4.8
PROCtext(2,-1,4,2,1,“Double Height, Normal Width”)
4.8
PROCtext(3,-1,7,1,2,“Normal Height, Double Width”)
4.8
PROCtext(4,-1,10,3,3,“3 * 3 Format”)
4.8
PROCtext(5,-1,15,4,1,“Ridiculous! 4 X 1 !!”)
4.8
PROCtext(6,-1,20,1,1,“You should reset the height & width
4.8
before finishing”)
4.8
PROCtext(6,-1,21,1,1,“but as it stands the PROCedure will
4.8
do this anyway”)
4.8
END
4.8
:
4.8
DEFPROCtext(C%,X%,Y%,H,W,T$)
4.8
F%=FNvdu
4.8
IF F%-(LENT$*W)<=0 THEN ERROR 300,“Line too long”
4.8
GCOL C%
4.8
Y%=1000-(Y%*32)
4.8
IF X%=-1 THEN X%=(F%-LENT$*2)/(W*2)
4.8
IF W=1 THEN X%=(F%-LENT$)/4
4.8
X%=X%*32
4.8
VDU 23,17,7,%110,W*8;H*8;0;
4.8
VDU 5,25,4,X%;Y%;
4.8
PRINT T$
4.8
VDU 4,23,17,7,%110,8;8;0;
4.8
ENDPROC
4.8
:
4.8
DEF FNvdu
4.8
!block%=256
4.8
block%!4=-1
4.8
SYS“OS_ReadVduVariables”,block%,
4.8
output%
4.8
=!output%
4.8
• Off screen desktop windows − Normally, the filer and switcher windows
are forced to stay within the confines of the screen but, by altering
their template files, it is possible to make them move ‘off screen’ and
thus help to reduce window ‘clutter’.
4.8
To do this, you have to copy the window templates from the DeskFS to a
directory called Templates. First, create a directory called Templates
in the root directory of your harddisc or ‘workdisc’ and then type the
following:
4.8
*deskfs
4.8
*copy templates.filer scsifs::scsidisc4.$.templates.filer
4.8
*copy templates.switcher scsifs::scsidisc4.$.templates.filer
4.8
(You can also copy netfiler, palette and wimp windows across if
required.)
4.8
Load the window template data into !FormEd (Shareware Disc 20) and set
the ‘no bounds’ option for each window. Then, edit your disc !boot file
to include the following line:
4.8
Set Wimp$Path scsifs::scsidisc4.
4.8
(or whatever your system is!) Don’t forget the full stop at the end.
This points Wimp$Path in the direction of the updated windows.
4.8
Finally re-boot your machine to see the result! M Roscoe, Ealing
4.8
• PrinterDM with the Star LC24−10 − I was interested to see the note on
!PrinterDM and the LC24-10 in March’s edition of Archive. May I draw
your attention to the “Hint and Tip” which I had published in the March
edition of Risc User on the same subject but concerning a different
problem. I was initially disappointed in the results I obtained with
Impression Junior (and from the Ovation test disc and, to a lesser
extent, !Draw printouts). This was due to some lines of text having a
marked “slewed” effect. After speaking to Star, and much sleuthing, I
tracked down the problem to the very same line in the PrData file of
!PrinterDM (version 1.12). There is apparently some incompatibility
between the Star and the Epson LQ800. The former does not like the “zero
absolute tab” command used to obtain the CR without LF. The solution was
to substitute the commands used in the FX80 module, although modified to
use the correct line feed command for 24 pin printers. With my version
of !PrinterDM I have not experienced any squashed text with the 24/180
inch feed (could the writer have been in IBM mode where the command
gives n/216 inches rather than n/180 inches?) but the bigger feed
suggested in March’s tip could equally well be used. The modified line
is as follows:
4.8
line_epilogue “<27>A<0><13><27>2<27>J<24>”
4.8
I’m surprised that this matter has not previously been commented on,
especially as I think it also applies to the XB24-10. A.F. Taylor,
Poole
4.8
• Quattro to Schema transfer − To move data files from Quattro, first
save the file with a WKI extension. Then you can use Schema’s !sch123 to
translate the file into Schema format. This method leaves all sorts of
spurious bits and pieces which have to be edited out by hand but it does
work. M Green, Devon
4.8
• Quitting First Word Plus − If you quit First Word Plus (release 2)
from the task manager while a text file is loaded, you will be thrown
out of the desktop. If other applications are running that may object
e.g. Draw, Paint, etc, they will announce what is about to happen and
give you a chance to prevent it. Otherwise you will lose any files that
you may have been working on in First Word Plus. R Bunnett,
Swanley
4.8
• Reading disc names − For those software writers who need to check that
the user has inserted an appropriate disc in the disc drive the
following function returns the name if the disc currently inserted:
4.8
DIM block% 5
4.8
:
4.8
DEF FNdiscname
4.8
SYS “OS_GBPB”,5,,block%
4.8
?(block%+?block% +1)=13
4.8
=$(block%+1)
4.8
M Sawle, Hampshire
4.8
• !Schema VAT rate − New spreadsheets are created with various user
names available, one of which is “Vat”. To change this from 0.15 to
0.175, look in the !Schema directory and then in the Menu directory and
you should find a file called StartUp. This has a write-lock on it so
you will have to use ‘Access’ off the filer menu to enable it to be
changed. At the end of this file are a number of lines that start with
‘putusn’, the first of which is the Vat rate which simply needs to be
changed before the file is again saved and the write-lock access
restored. Ian Hamilton, Harrow.
4.8
• Spaced filenames − If you want a <space> in a disc or file name, use a
hard space. This is available by pressing either <alt><1><6><0> or
<alt><space>. You should note that if you do use it then you can’t use
the copy key on a catalogue because the Archimedes thinks that the
character is a normal space (which is illegal in a filename). E Hughes,
Derbyshire
4.8
• Twin World cheats − The file SavedGame can be edited using !Edit to
cheat. Byte values of interest include:
4.8
Byte 1 = Level (Maximum = 22 = &16)
4.8
Byte 4 = Red Spells (Maximum 99 = &63)
4.8
Byte 5 = Blue Spells (Maximum 99 = &63)
4.8
Byte 6 = Green Spells (Maximum 99 = &63)
4.8
Bytes 8-11 = Score, low byte first. (Maximum = 999999 = &F423F )
4.8
Byte 12 = Lives (Maximum = 9 or 10 = &9 or &0A)
4.8
Remember all value are in hex, so use the magic character option in
!Edit’s Find. Stuart Turgis
4.8
• TwinWorld hints
4.8
− Owls in the forest can be killed by jumping up and firing.
4.8
− Similarly, on some occasions you will have to jump, but fire on the
way down to hit denizens close to you.
4.8
− Jump between worlds whenever possible − if you loose a life, you’re
taken back to the last time you changed worlds.
4.8
− Stamping your feet can reveal objects − either treasure or keys.
4.8
− Beware of calling the genie when you are already carrying two other
sorts of objects (remember the horn is one), because you won’t be able
to buy an object which you don’t already hold.
4.8
− Beware when shooting the three-headed dragon. If you don’t shoot the
head furthest away from you, it flies away from you and fires an almost
continuous salvo.
4.8
− Watch out for extended jump − you can sometimes use it when you don’t
realise − on some screens it’s essential and you may only have a limited
amount.
4.8
− Watch out for the parachute − in the last few levels I found I
couldn’t get rid of it and it limited my objects to just two types.
4.8
− When firing at the bird − if you duck, it flies lower to avoid your
fire. Stand until the bird is fairly close, then crouch and fire.
4.8
− When the giant clam fires at you, or the Big eye, if you run so the
‘bullet’ is off the screen it will disappear.
4.8
Impression
4.8
Hints & Tips
4.8
Bruce Goatly (BG), who is busy writing a book about using Impression,
very kindly sent us some hints & tips (in return for permission to use
our H&T in his book!). Most of the rest of the H&T are from the editor’s
experiences with the unreleased version 2.09. (Version 2.10 is not ready
for release so 2.05 is still the latest officially available version.)
4.8
• Abbreviation expansion − Use it to correct common spelling errors or
to enforce house style (I often type ‘ans’ for ‘and’ and ‘thw’ for
‘the’, and the house style for my book is ‘disk’ whereas I almost always
spell it ‘disc’). BG.
4.8
• Date and time format − As I continually forget what day it is, I use
the Insert date option quite a lot. If you want to change the format of
the date (the default is in the form 6th April 1991), load the !Run file
into Edit and alter the definition of the variable Impression$DateFormat
(see pp. 337-339 of the User Guide, on using system variables).
Similarly, you can alter the time format by editing
Impression$TimeFormat. BG.
4.8
• Dongle connection problems − If you are having problems with a dongle
that keeps saying it is not present and you find that you need to wiggle
it (just a little bit!) to recognise its presence, go back and read the
hint above about ‘Connection problems’. Alternatively, CC themselves
offer a hint about it. They say that it is important to quit properly
from Impression and not just do a <ctrl-break>, otherwise the dongle
might need to be left for a couple of hours for a capacitor to discharge
before Impression can be loaded again.
4.8
• Line spacing and font changes − If a line in the middle of a paragraph
starts with a different font from the lines around it, the line spacing
may be upset for that one line because of the way Impression does its
calculations. The way round it is to put the cursor at the start of the
offending line, cancel the font change at that point and insert a ‘null’
character (such as Alt-131). This will be invisible but will correct the
line spacing. BG.
4.8
• Loading text files − If you want to load a text file into Impression,
there is no need to create a new document first − just drag the Edit
file onto the Impression icon and it will set up an untitled document
and load the text into a null frame.
4.8
• Marking a single character − If you are doing DTP in a lower resolu
tion screen mode, you may be finding it difficult to use the mouse to
drag-mark a single character e.g. the ‘l’ in ‘will’. One way of doing it
is to move the cursor between two of the characters, click <select> but
firmly hold the mouse in place. Then you use the cursor left or right,
as appropriate, to move the cursor to the other side of the character to
be marked and finally press <adjust>. George Foot, Oxted.
4.8
My method of doing any of this kind of detailed work is to have two
windows open on the same document − which is extremely easy to do
(another advantage over PageMaker!) − one shows the full page and one
just an enlarged section of the text. Then you can flick backwards and
forwards between the two views enlarging and contracting the windows or
simply pushing them to the back when they are not wanted.
4.8
(However, have you noticed that Impression sometimes insists on going
back to the beginning of the document when you expand and contract the
window using the size switch icon in the top right hand corner of the
window? Has anyone worked out why it happens and, more importantly, how
to stop it?)
4.8
• Special characters − The list in Appendix 5 of the Impression II
manual gives a printout of all the characters. This is useful, but there
is some variation from one typeface to another, so it would be useful to
have an Impression file of it so that you could print it out in your
particular typeface. I’ll put a file of it on the monthly program disc,
but if you want to do it yourself, you can run the following program and
put the text into a multi-column Impression document.
4.8
10 REM > CHARLISTER
4.8
20 *SPOOL CHARS
4.8
30 @%=2
4.8
40 FOR N% = 32 TO 255
4.8
50 PRINT N%;CHR$(9);
4.8
“{”“heading”“on }{” ;CHR$(N%); “}”
4.8
60 NEXT
4.8
70 *SPOOL
4.8
• Spell-checking − Not really a hint, but I was using the spelling
checker and it offered me the word “faltness” and told me that
“flatness” was wrongly spelled. Also, while spell-checking, someone had
written “Beebugs’ policy”. The spelling checker knows Beebug but can you
guess what it offered me as an alternative for the accidental plural?
Yes, that’s right, “Bedbugs”! On the same theme, I spell-checked my
Factfile and came up with Motley Electronics, Mike Leecher of EMU Ltd,
ARM3’s from Aloof One and IDLE drives from Ian Copycats. Then I tried
some of our contributors and found Brain Cowman, Dim Parkland and last,
but not least, Pall Beggarly.
4.8
• Tickets please! − (The following saga gives, firstly, an unnecessarily
long method of doing a job but one which illustrates techniques which
might prove useful in other circumstances. It is followed by the easier,
smarter method!) I wanted to make some numbered tickets at A6 size so I
made up an A4 page with four copies of the ticket. I used a two column
master page so that I could just take a copy of the text on the page and
paste it 14 times to make my 60 tickets. Near the bottom of each ticket,
it said, “Ticket number: ” with an appropriate blank space. Then I
created four guide frames on the master page at about the right place to
put in the ticket numbers and inserted four new frames on each page. I
then went through linking all the frames together. To create the text
for the numbers, I used PipeDream using the “row” command and copying it
down 60 rows. I then “saved” this in tab format straight into the first
ticket number frame and, instantly, all the tickets were numbered.
Brilliant! The only real hassle was lining up the ticket number boxes
with the words on the ticket. The problem is that although you can have
both the text and the master page on screen at the same time and at the
same magnification (which helps), the main page is not updated until the
master page is closed so I changed the “preferences” to make the master
page come up at the right magnification.
4.8
(A similar technique of linked frames is used for the running heads on
the magazine − i.e. the articles’ names at top outside corners of the
pages. The dummy Archive, before articles are inserted, has a whole
string of 60 “X”s, one on each page, alternately left and right aligned.
Then, when an article has been inserted, the running heads are altered
using selective search and replace to change, for example, “X” into
“Hints & Tips”. This is easier than using copy and paste because it
preserves the left and right alignment. But I digress... let me get back
to the tickets...)
4.8
Then I suddenly realised the easy way of doing it.... Create the ticket
at full A4 size on the master page using “Ticket number: ” and then
inserting the page number. (Use <menu> − Misc − Insert − Current page
number − Numeric.) Then, all you do is to add 59 pages (click on “Insert
new page” with <adjust>, not <select> so that the menu option stays on
the screen) and use “Fit lots” on the “Print” dialogue box reducing the
scale to 50%. If you find that it still says, “Fit lots (1)” at 50% and
you have to go down to about 48% before it goes to (4), click on
“Setup...” and select the option to “Ignore page boundary”. If you don’t
do this but print out at 48%, you will find that the margins are
unequal. This is a much quicker way of doing it than the previous method
and also gives the possibility of deciding that you want the tickets
smaller after all so you just reduce the scale and, perhaps, change to
sideways printing.
4.8
• Widows & orphans − This is the technical term for where you get a
paragraph split so that a single line is on one page (or column) and the
rest is on the previous or next. If the first line is split off from the
rest, the solution is fairly obvious − use <ctrl-G> at the beginning of
the paragraph to push the line onto the next column. The odd line at the
end of a paragraph is less easy. If the text is left justified, you can
again use <ctrl-G> to push one more line to the next column to join the
lonely orphan. However, if you subsequently edit the paragraph so that
the layout of the lines changes, you have to edit out the <ctrl-G>.
Also, this doesn’t work at all if you are using full justification
because the <ctrl-G> causes the justification on the last line of the
column to be lost and it looks like the end of a paragraph without a
full stop. The only solution I can find is to create a new frame with
<ctrl-I> and lay it over the last line of the column. This forces that
line over to the next column without losing the justification.
4.8
SCSI Hints & Tips
4.8
• Removable drive problems − We are beginning to understand more about
the problems with removable drives. Let me explain... SCSI drives are
intelligent and they keep their own record of any duff sectors. However,
this record is not available to the user. If you tell the computer to
“format” the disc, it deliberately ignores any sectors it already knows
are duff. If you get a “soft error” i.e. where the data gets corrupted
so that the CRC check shows up an error, reformatting will clear the
problem. However, if the disc surface is actually damaged, it may be
that reformatting clears the problem temporarily but, with time, the
problem may reappear and you will get the dreaded “Disc error 10 at... ”
or whatever. The solution to this is to use the *DEFECT command provided
by RISC-OS. If you get an error, *VERIFY the disc, note the addresses
which are thrown up as either suspect or actually having a disc error,
say, 7CEC00, 7CEE00 and 7CF000 and then type in
4.8
*DEFECT SCSI::5 7CEC00
4.8
*DEFECT SCSI::5 7CEE00
4.8
*DEFECT SCSI::5 7CF000
4.8
where SCSI::5 is the drive definition. It is worth recording these
addresses in case you need to format the disc again in the future. You
then need to enter the *DEFECT commands again. If *DEFECT finds that you
are trying to map out a sector that is allocated to a file or directory,
it will tell you so, in which case, you will have to copy the file or
directory and delete the one which it says is in the way.
4.8
Obviously, it is better if you can avoid getting hard errors in the
first place so, just as a reminder, (1) always dismount the drive
properly before switching off the power and (2) keep your drive cool by
not packing other hardware around it.
4.8
• Removable drive problems (Part 2) − Surely there can’t be any MORE
problems with the removable drives − they really won’t be worth selling.
Yes, there are more problems but, yes, I still think they are worth
selling. If you try to use the MR45’s or the Atomwide equivalent on an
Acorn SCSI podule or on a TechnoSCSI (I have not tried any others), you
will find that occasionally they just hang up − usually when copying a
sequence of files. It is a timing problem which Acorn say they will look
into but they are not too optimistic. They say that Syquest, who make
the drive mechanisms, have interpreted the SCSI standards in a different
way from other drive manufacturers. The Acorn engineers have tried to
modify their software to accommodate Syquest’s idiosyncrasies but
although they have managed to make a version of their software that will
work when copying lots of files, they find that it does not format the
cartridges properly! It is not beyond the bounds of possibility to get
SCSI software to work on the Syquest drives − both Oak and Lingenuity
have done it successfully but, as yet, there is no satisfactory way of
running them on Acorn or TechnoSCSI cards.
4.8
I should say to A540 owners, that, although I am using a Syquest
removable drive on my A540, I am doing so on an Oak podule. I made the
change (before I realised there was any problem) purely on the basis
that (1) the Oak software is the easiest to use on the MR45’s because of
the ease of dismounting and re-mounting discs and (2) it is the fastest
that I have tried. (I have not yet tried the offerings from HCCS or The
Serial Port but unless they have specifically tailored their software
for the Syquest mechanisms, I doubt that they will work.)
4.8
• SCSI land speed record − Oak are claiming an Archimedes drive speed
record. Their 300M HS drive, on an A440 with a 20MHz ARM3, runs at 1939
/ 1761 / 1043 Kbytes/sec in modes 0, 15 and 21 respectively. Can anyone
beat that? A
4.8